package fl.ass.service.transform;

import java.util.ArrayList;
import java.util.List;

import fl.ass.facade.dto.AssTrailCarDDTO;
import fl.ass.service.po.AssTrailCarD;
import cn.cmm.base.framework.utils.CollectionUtils;

 /**
 * @Description: 拖车信息明细表 转换器
 * @Description: 服务层与展现层转换类
 * @Description: 所有的PO只能在持久成和服务层使用
 * @Description: 所有的DTO只能在展现层和服务层使用
 * @Description: 在服务层中向下是DTO转PO,向上是PO转DTO
 */
public class AssTrailCarDTransform {


	/**
	 * PO 转  DTO
	 * @param po AssTrailCarD
	 * @return AssTrailCarDDTO
	 */
	public static AssTrailCarDDTO toDTO(AssTrailCarD po) {
		AssTrailCarDDTO  dto = null;
		if (po != null) { 
			dto = new AssTrailCarDDTO();
			dto.setId(po.getId());
			dto.setMasterId(po.getMasterId());//主表ID
			dto.setCstId(po.getCstId());//客户ID
			dto.setCstNm(po.getCstNm());//客户名称
			dto.setPrjId(po.getPrjId());//项目ID
			dto.setPrjPrdId(po.getPrjPrdId());//项目产品ID
			dto.setPrjPrdDtlId(po.getPrjPrdDtlId());//项目产品明细ID
			dto.setContNo(po.getContNo());//合同号
			dto.setSalContNo(po.getSalContNo());//买卖合同号
			dto.setPaySchId(po.getPaySchId());//支付表ID
			dto.setPaySchNo(po.getPaySchNo());//支付表编号
			dto.setCstMgrId(po.getCstMgrId());//客户经理ID
			dto.setCstMgrNm(po.getCstMgrNm());//客户经理名称
			dto.setBuOrgCd(po.getBuOrgCd());//所属事业部
			dto.setSplId(po.getSplId());//供应商ID
			dto.setSplNm(po.getSplNm());//供应商名称
			dto.setPrdNm(po.getPrdNm());//产品名称
			dto.setPrdMdl(po.getPrdMdl());//产品型号
			dto.setIsNew(po.getIsNew());//是否新产品
			dto.setUsedPd(po.getUsedPd());//产品已使用期限（月）
			dto.setRsrvPc(po.getRsrvPc());//产品留购价（元）- 按分保存
			dto.setGuidePc(po.getGuidePc());//产品单价（元）- 按分保存
			dto.setPrdQty(po.getPrdQty());//产品数量
			dto.setIsOnline(po.getIsOnline());//GPS是否在线 1-是 0-否
			dto.setLsPd(po.getLsPd());//租赁期数
			dto.setLsPdUntCd(po.getLsPdUntCd());//租赁期数单位（PRJ0010）
			dto.setBackPrice(po.getBackPrice());//拖车价格
			dto.setBackQty(po.getBackQty());//拖车数量
			dto.setBackAmt(po.getBackAmt());//拖车合计费用
			dto.setActBackAmt(po.getActBackAmt());//实际拖车费用
			dto.setBackStsCd(po.getBackStsCd());//拖车状态(ASS0003)
			dto.setDealTypeCd(po.getDealTypeCd());//处置方式(ASS0004)
			dto.setDealStsCd(po.getDealStsCd());//处置状态(ASS0005)
			dto.setFlowPassTm(po.getFlowPassTm());//流程通过时间
			dto.setIsEnter(po.getIsEnter());//是否入库
			dto.setEnterTm(po.getEnterTm());//入库时间
			dto.setIsOut(po.getIsOut());//是否出库
			dto.setOutTm(po.getOutTm());//出库时间
			dto.setGainLoassCd(po.getGainLoassCd());//盈亏状态(ASS0006)
			dto.setGainLoassScale(po.getGainLoassScale());//盈亏比例
			dto.setGainLoassAmt(po.getGainLoassAmt());//盈亏金额
			dto.setBackedFlagCd(po.getBackedFlagCd());//拖回标记(ASS0014)
			dto.setIsHis(po.getIsHis());//是否历史数据 0-最新 1-历史
			dto.setIsDel(po.getIsDel());//是否删除 1-删除 0-正常
			dto.setInfoId(po.getInfoId());//扩展表ID
			dto.setEnterRem(po.getEnterRem());//入库备注
			dto.setOutRem(po.getOutRem());//出库备注

			dto.setCrtTm(po.getCrtTm());//创建时间
			dto.setCrtUsrId(po.getCrtUsrId());//创建人
			dto.setMdfTm(po.getMdfTm());//修改时间
			dto.setMdfUsrId(po.getMdfUsrId());//修改人
			
			//拖车管理-JiLi-20170323
			dto.setActBackDt(po.getActBackDt());//拖回时间
			dto.setBackDays(po.getBackDays());//拖回天数
			dto.setActPayAmt(po.getActPayAmt());//实际支付金额
			
			dto.setBusinessType(po.getBusinessType());//业务类型
			dto.setPrjTypCd(po.getPrjTypCd());//项目类型
			dto.setPrjNm(po.getPrjNm());//项目名称
			dto.setCostFileRem(po.getCostFileRem());//杂费附件备注
		}
		return dto;
	}

	/**
	 * DTO 转  PO
	 * @param dto AssTrailCarDDTO
	 * @return AssTrailCarD
	 */
	public static AssTrailCarD toPO(AssTrailCarDDTO dto) {
		AssTrailCarD po = null;
		if (dto != null) {
			po = new AssTrailCarD();
			po.setId(dto.getId());
			po.setMasterId(dto.getMasterId());//主表ID
			po.setCstId(dto.getCstId());//客户ID
			po.setCstNm(dto.getCstNm());//客户名称
			po.setPrjId(dto.getPrjId());//项目ID
			po.setPrjPrdId(dto.getPrjPrdId());//项目产品ID
			po.setPrjPrdDtlId(dto.getPrjPrdDtlId());//项目产品明细ID
			po.setContNo(dto.getContNo());//合同号
			po.setSalContNo(dto.getSalContNo());//买卖合同号
			po.setPaySchId(dto.getPaySchId());//支付表ID
			po.setPaySchNo(dto.getPaySchNo());//支付表编号
			po.setCstMgrId(dto.getCstMgrId());//客户经理ID
			po.setCstMgrNm(dto.getCstMgrNm());//客户经理名称
			po.setBuOrgCd(dto.getBuOrgCd());//所属事业部
			po.setSplId(dto.getSplId());//供应商ID
			po.setSplNm(dto.getSplNm());//供应商名称
			po.setPrdNm(dto.getPrdNm());//产品名称
			po.setPrdMdl(dto.getPrdMdl());//产品型号
			po.setIsNew(dto.getIsNew());//是否新产品
			po.setUsedPd(dto.getUsedPd());//产品已使用期限（月）
			po.setRsrvPc(dto.getRsrvPc());//产品留购价（元）- 按分保存
			po.setGuidePc(dto.getGuidePc());//产品单价（元）- 按分保存
			po.setPrdQty(dto.getPrdQty());//产品数量
			po.setIsOnline(dto.getIsOnline());//GPS是否在线 1-是 0-否
			po.setLsPd(dto.getLsPd());//租赁期数
			po.setLsPdUntCd(dto.getLsPdUntCd());//租赁期数单位（PRJ0010）
			po.setBackPrice(dto.getBackPrice());//拖车价格
			po.setBackQty(dto.getBackQty());//拖车数量
			po.setBackAmt(dto.getBackAmt());//拖车合计费用
			po.setActBackAmt(dto.getActBackAmt());//实际拖车费用
			po.setBackStsCd(dto.getBackStsCd());//拖车状态(ASS0003)
			po.setDealTypeCd(dto.getDealTypeCd());//处置方式(ASS0004)
			po.setDealStsCd(dto.getDealStsCd());//处置状态(ASS0005)
			po.setFlowPassTm(dto.getFlowPassTm());//流程通过时间
			po.setIsEnter(dto.getIsEnter());//是否入库
			po.setEnterTm(dto.getEnterTm());//入库时间
			po.setIsOut(dto.getIsOut());//是否出库
			po.setOutTm(dto.getOutTm());//出库时间
			po.setGainLoassCd(dto.getGainLoassCd());//盈亏状态(ASS0006)
			po.setGainLoassScale(dto.getGainLoassScale());//盈亏比例
			po.setGainLoassAmt(dto.getGainLoassAmt());//盈亏金额
			po.setBackedFlagCd(dto.getBackedFlagCd());//拖回标记(ASS0014)
			po.setIsHis(dto.getIsHis());//是否历史数据 0-最新 1-历史
			po.setIsDel(dto.getIsDel());//是否删除 1-删除 0-正常
			po.setInfoId(dto.getInfoId());//扩展表ID
			po.setEnterRem(dto.getEnterRem());//入库备注
			po.setOutRem(dto.getOutRem());//出库备注

			po.setCrtTm(dto.getCrtTm());//创建时间
			po.setCrtUsrId(dto.getCrtUsrId());//创建人
			po.setMdfTm(dto.getMdfTm());//修改时间
			po.setMdfUsrId(dto.getMdfUsrId());//修改人
			
			//拖车管理-JiLi-20170323
			po.setActBackDt(dto.getActBackDt());//拖回时间
			po.setBackDays(dto.getBackDays());//拖回天数
			po.setActPayAmt(dto.getActPayAmt());//实际支付金额
			
			po.setBusinessType(dto.getBusinessType());//业务类型
			po.setPrjTypCd(dto.getPrjTypCd());//项目类型
			po.setPrjNm(dto.getPrjNm());//项目名称
			po.setCostFileRem(dto.getCostFileRem());//杂费附件备注
		}
		return po;
	}
	
	/**
	 * PO集合 转 DTO集合
	 * @param list List<AssTrailCarD>
	 * @return List<AssTrailCarDDTO>
	 */
	public static List<AssTrailCarDDTO> toDTOList(List<AssTrailCarD> list) {
		List<AssTrailCarDDTO>  voList = new ArrayList<AssTrailCarDDTO>();
		if(CollectionUtils.isNotEmpty(list)){
			for (AssTrailCarD po : list) {
				voList.add(toDTO(po));
			}
		}
		return voList;
	}
}
